package com.fjwt.gz.db.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fjwt.gz.core.model.BaseModel;
import com.fjwt.gz.db.entity.BlacklistRuleEntity;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 黑名单规则表
 * </p>
 */
@Data
@Accessors(chain = true)
public class BlacklistRuleDTO extends BaseModel<BlacklistRuleEntity> {

    /**
     * 主键
     */
    private Long blacklistRuleId;

    /**
     * 黑名单规则名称（最多16个字符）
     */
    private String ruleName;

    /**
     * 规则类型 0：客户经理 1 其他
     */
    private Integer ruleType;

    /**
     * 触发黑名单提示语（最多32个字符）
     */
    private String ruleTip;

    /**
     * 机构ID
     */
    private String agentNo;

    /**
     * 一级机构号
     */
    private String agentNo1;

    /**
     * 二级机构号
     */
    private String agentNo2;

    /**
     * 三级机构号
     */
    private String agentNo3;

    /**
     * 四级机构号  如果机构号为空则写 0
     */
    private String agentNo4;

    /**
     * 是否强制配置  0否 1是，默认0
     */
    private String isForceConfig;

    /**
     * 校验字段，例如：phone/cstmNo
     */
    private String checkField;

    /**
     * 额外的字段1，例如：{'name':'字段1', isMust: true/false }
     */
    private String extraField1;

    /**
     * 额外的字段2
     */
    private String extraField2;

    /**
     * 额外的字段3
     */
    private String extraField3;

    /**
     * 额外的字段4
     */
    private String extraField4;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    /**
     * 创建者id
     */
    private Long createdUid;

    /**
     * 更新建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updatedAt;

    /**
     * 额外字段
     */
   private List<BlacklistExtraFieldDTO> extraFieldList;

    /**
     * 机构号集合
     */
    private List<String> agentNoList;
}
